package cn.cqie.attendance.student.sevice;


import cn.cqie.attendance.student.domian.*;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 学生信息Service接口
 * @author xhd
 * @date 2021-06-18
 */

public interface IStudentService 
{
    /**
     * 通过Id查询学生信息
     * @param stuId
     * @return student
     */
    Student queryStudentById(Long stuId);

    /**
     * 学生实训小组列表查询
     * @param stuId
     * @return studentList
     */
    List<ResultStudent> queryStudentList(Long stuId);

    /**
     * 学生实训成绩列表查询
     * @param stuId
     * @return groupScoreList
     */
    List<ResultScore> queryStudentGroupItemScore(Long stuId);

    /**
     * 学生实训小组成绩列表排行查询
     * @param courseId
     * @return groupScoreList
     */
    List<Student> queryStudentGroupItemScoreRankNo(Long courseId);

    /**
     * @param stuId 学生id
     * @param email 学生邮箱
     * @return 返回修改结果 1成功 0失败
     * 修改学生邮箱
     */
    int updateEmail(Long stuId,String email);

    /**
     * @param stuId 学生id
     * @param phone 学生电话号码
     * 修改学生电话号码
     */
    int updatePhoneNumber(Long stuId, String phone);

    /**
     * 学生上传头像
     * @param filePath
     * @param stuId
     * */
    boolean uploadStudentFace(Long stuId, String filePath);

    /**
     * 条件查询学生实训课程信息
     * @param course
     */
    List<Course> queryStudentCourseByInfo(QueryCourse course);

    /**
     * 条件查询学生实训作业信息列表
     * @param homework
     */
    List<ResultHomework> queryStudentTaskByInfo(QueryHomework homework);

    /**
     * 学生实训作业内容查询
     * @param
     */
    List<ResultHomework> queryStudentTaskInfoById(Long phId, Long homId);



    int insertAttachment(String filePath,int homeworkType,Long phId,Long homId);
    int updateHomework(Long phId, Long homId, String answerContent,int status);


    /**
     * 草稿内容查询
     * */
    ResultHomework queryDraftInfo(int status, Long phId, Long homId);


    /**
     * 查询作业批复情况
     * @param
     * */
    Homework queryHomeworkApproval(Long phId,Long homId,Long stuId);

    /**
     * 查询学生的考勤记录
     * @param stuId
     * */
    List<ResultAttendance> queryStudentAttendance(Long stuId);

    /**
     * 查询学生的考勤记录
     * @param stuId,pageNum,pageSize
     * */
    List<ResultAttendance> queryStudentAttendanceRecord(Long stuId);



    /**
     * 下拉框数据查询，通过学生id查询该学生所有的课程
     * @param stuId
     * @return courseList
     * */
    List<Course> queryStudentCourseById(Long stuId);

    /**
     * 下拉框数据查询，通过学生id查询该学生实训老师
     * @param stuId
     * @return trainteacherCourseList
     * */
    List<TrainteacherCourse> queryStudentTrainteacherById(Long stuId);

    /**
     * 下拉框数据查询，通过学生id查询该学生责任老师
     * @param stuId
     * @return courseList
     * */
    List<Course> queryStudentResponseteacherById(Long stuId);



}
